package com.atguigu.config;

import com.cloopen.rest.sdk.CCPRestSmsSDK;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.stereotype.Component;

import java.util.HashMap;

@Component
@Slf4j
public class SDKSendTemplateSMS {

//    public Object[] getSmsData(){
//
//    }

    /**
     * 发送验证码工具类
     *
     * @param phone 电话号码
     * @return 验证码
     */
    public boolean sms(String phone, String code){
        //key
        HashMap<String, Object> result = null;
        //初始化容联云短信验证的SDK（软件开发工具包）
        CCPRestSmsSDK restAPI = new CCPRestSmsSDK();

        //初始化容联云的服务器地址和端口，生产环境配置成app.cloopen.com，端口是8883.
        restAPI.init("app.cloopen.com", "8883");


        //设置开发者主账号信息：主账号令牌account_sid、主账户授权令牌AUTH TOKEN、app_id


        // 初始化主账号名称和主账号令牌，登陆云通讯网站后，可在控制首页中看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN。
        restAPI.setAccount("8aaf0708809721d0018104a515f52627",
                "56676c8428774223a012b7935541a664");

        // 请使用管理控制台中已创建应用的APPID。
        restAPI.setAppId("8aaf0708809721d0018104a516d1262e");

        //设置需要发送的手机号和发送的验证码及过期时间
        /**
         * 参数1：发送的手机号码
         * 参数2：模板Id
         * 参数3：用于替换模板中的序号
         */
//        code = "1111";
        result = restAPI.sendTemplateSMS(phone, "1", new String[]{code, "2"});
        if ("000000".equals(result.get("statusCode"))) {
            return true;
        } else {
            log.warn("发送验证吗失败，失败信息：" + result);
            //异常返回输出错误码和错误信息
            String s = "错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg");
//            System.out.println(s);
            return false;
        }
    }
}
